import java.*;
import java.util.*;
import java.io.*;

public class directories {
	protected static String[] nomfichier;
	protected static int nbfichier = 0;
	protected static String dossierin;
	protected static String dossierout;

	public static void repertoire(String in, String out) throws Exception {
		dossierin = in;
		dossierout = out;
		File repin = new File(in);
		listfile(repin);
		makedir(out);
		// lecture et ecriture des fichiers .ly et .mid pour chaque fichier
		// .chant
		for (int i = 0; i < nbfichier; i++) {
			txtReader.lecture(nomfichier[i]);
			Harmonisation.harmonisation(notes.entiersoprano);
			sortieLy.write(out
					+ "\\"
					+ nomfichier[i].substring(dossierin.length(),
							nomfichier[i].length() - 6) + ".ly");
			sortieMid.write(out
					+ "\\"
					+ nomfichier[i].substring(dossierin.length(),
							nomfichier[i].length() - 6) + ".mid");
		}
		// ecriture du fichier html
		sortieHtml.write(dossierin, dossierout);
	}

	// creation du dossier si il n'existe pas
	public static void makedir(String out) {
		File file = new File(out);
		if (file.mkdir()) {
			System.out.println("Ajout du dossier : " + file.getAbsolutePath());
		} else {
			System.out.println("Echec de creation sur le dossier : "
					+ file.getAbsolutePath());
		}
	}

	public static void listfile(File repertoire) {
		// si le repertoire est bon et on initialise le tableau de fichier
		if (repertoire.isDirectory()) {
			File[] list = repertoire.listFiles(new FilenameFilter() {
				public boolean accept(File file, String fileName) {
					return fileName.endsWith(".chant");
				}
			});

			// si le tableau est non vide on le rempli avec le nom de fichier
			// .chant
			if (list != null) {
				nomfichier = new String[list.length];
				for (int i = 0; i < list.length; i++) {
					listfile(list[i]);
					nomfichier[i] = list[i].toString();
					nbfichier++;
				}

			} else {
				System.err.println(repertoire + " : Erreur de lecture.");
			}
		}

	}

}
